Often it is desired to improve the quality of an original image by utilizing various digital processing techniques. While there exist many software programs that allow a person to perform a wide variety of processing on a digital image, these programs require intensive personal input and often a high level of training to be used effectively. Consequently, there has been a parallel development of techniques that can automatically analyze a digital image and, without any human involvement, improve the image quality.
One particular problem that is commonly encountered is the presence of noise in a digital image. This noise can arise for a variety of reasons and includes both systematic or regular noise and random noise. A number of techniques have been devised to automatically remove noise from a digital image. One common technique is to simply apply some sort of low pass or averaging filter to the image. While this technique and similar techniques are effective in reducing or eliminating noise, simple filtering techniques suffer from the disadvantage that simple filtering also tends to blur the image, reducing its visual quality.
One conventional method for reducing or eliminating noise while avoiding the problem of blurring the image utilizes a sigma filter. The sigma filter works by replacing the value of a pixel with the average of those neighboring pixels that are relatively close to its value. This distance is usually taken to be related to the variance of the image, and hence the noise level. The sigma filter has the advantage of preserving high frequency detail in the image while removing noise.
However, the sigma filter has the disadvantage that the filter kernel needs to be relatively large for the filter to be effective. The large filter requires more extensive computing resources and time, thereby making the sigma filter less desirable.
Therefore, it would be desirable to implement a filtering process that realizes the advantages of a sigma filter, which is reducing or eliminating noise while avoiding the problem of blurring the image, but is more economical in the computing requirements needed to implement it.